/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package entidades;

import java.io.Serializable;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;

/**
 *
 * @author IlusCode Software para aprender a programar
 */
@Entity
@Table(name = "archivo", catalog = "iluscode", schema = "", uniqueConstraints = {
    @UniqueConstraint(columnNames = {"idarchivo"})})
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "Archivo.findAll", query = "SELECT a FROM Archivo a"),
    @NamedQuery(name = "Archivo.findByIdarchivo", query = "SELECT a FROM Archivo a WHERE a.idarchivo = :idarchivo"),
    @NamedQuery(name = "Archivo.findByNombrearchivo", query = "SELECT a FROM Archivo a WHERE a.nombrearchivo = :nombrearchivo"),
    @NamedQuery(name = "Archivo.findByTamanio", query = "SELECT a FROM Archivo a WHERE a.tamanio = :tamanio"),
    @NamedQuery(name = "Archivo.findByFechacreado", query = "SELECT a FROM Archivo a WHERE a.fechacreado = :fechacreado")})
public class Archivo implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @NotNull
    @Column(name = "idarchivo", nullable = false)
    private Integer idarchivo;
    @Size(max = 45)
    @Column(name = "nombrearchivo", length = 45)
    private String nombrearchivo;
    @Column(name = "tamanio")
    private Integer tamanio;
    @Lob
    @Column(name = "datasosicado")
    private byte[] datasosicado;
    @Size(max = 45)
    @Column(name = "fechacreado", length = 45)
    private String fechacreado;
    @JoinColumn(name = "idusuario", referencedColumnName = "idusuario")
    @ManyToOne
    private Usuario idusuario;

    public Archivo() {
    }

    public Archivo(Integer idarchivo) {
        this.idarchivo = idarchivo;
    }

    public Integer getIdarchivo() {
        return idarchivo;
    }

    public void setIdarchivo(Integer idarchivo) {
        this.idarchivo = idarchivo;
    }

    public String getNombrearchivo() {
        return nombrearchivo;
    }

    public void setNombrearchivo(String nombrearchivo) {
        this.nombrearchivo = nombrearchivo;
    }

    public Integer getTamanio() {
        return tamanio;
    }

    public void setTamanio(Integer tamanio) {
        this.tamanio = tamanio;
    }

    public byte[] getDatasosicado() {
        return datasosicado;
    }

    public void setDatasosicado(byte[] datasosicado) {
        this.datasosicado = datasosicado;
    }

    public String getFechacreado() {
        return fechacreado;
    }

    public void setFechacreado(String fechacreado) {
        this.fechacreado = fechacreado;
    }

    public Usuario getIdusuario() {
        return idusuario;
    }

    public void setIdusuario(Usuario idusuario) {
        this.idusuario = idusuario;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (idarchivo != null ? idarchivo.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Archivo)) {
            return false;
        }
        Archivo other = (Archivo) object;
        if ((this.idarchivo == null && other.idarchivo != null) || (this.idarchivo != null && !this.idarchivo.equals(other.idarchivo))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "entidades.Archivo[ idarchivo=" + idarchivo + " ]";
    }
    
}
